package com.ly.emp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 绩效考核人员
 *
 * @author luoyun
 * @Date: 2025-05-09
 */
@Data
@TableName("epm_base_rel")
@Schema(description = "绩效考核人员")
public class EpmBaseRel implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键")
    private java.lang.String id;
    /**
     * 考核关系类型编号
     */
    @Schema(description = "考核关系类型编号")
    private java.lang.String relTypeCode;
    /**
     * 组织编码
     */
    @Schema(description = "组织编码")
    private java.lang.String orgCode;
    /**
     * 组织名称
     */
    @Schema(description = "组织名称")
    private java.lang.String orgName;
    /**
     * 工号
     */
    @Schema(description = "工号")
    private java.lang.String psnNum;
    /**
     * 名字
     */
    @Schema(description = "名字")
    private java.lang.String psnName;
    /**
     * 岗位编码
     */
    @Schema(description = "岗位编码")
    private java.lang.String posCode;
    /**
     * 岗位名称
     */
    @Schema(description = "岗位名称")
    private java.lang.String posName;
    /**
     * 绩效兼职
     */
    @Schema(description = "绩效兼职")
    private java.lang.String epmPerson1;
    /**
     * 绩效兼职名称
     */
    @Schema(description = "绩效兼职名称")
    private java.lang.String epmPerson1Name;
    /**
     * 绩效管理员
     */
    @Schema(description = "绩效管理员")
    private java.lang.String epmPerson2;
    /**
     * 绩效管理员名称
     */
    @Schema(description = "绩效管理员名称")
    private java.lang.String epmPerson2Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson3;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson3Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson4;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson4Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson5;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson5Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson6;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson6Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson7;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson7Name;
    /**
     * 绩效经理
     */
    @Schema(description = "绩效经理")
    private java.lang.String epmPerson8;
    /**
     * 绩效经理名称
     */
    @Schema(description = "绩效经理名称")
    private java.lang.String epmPerson8Name;
    /**
     * 人员类型
     */
    @Schema(description = "人员类型")
    private java.lang.String personType;
    /**
     * 是否考核
     */
    @Schema(description = "是否考核")
    private java.lang.String isAssess;
    /**
     * 是否主岗
     */
    @Schema(description = "是否主岗")
    private java.lang.String isMainpos;
    /**
     * 是否负责人
     */
    @Schema(description = "是否负责人")
    private java.lang.String isDirector;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson1OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson1PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson2OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson2PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson3OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson3PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson4OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson4PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson5OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson5PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson6OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson6PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson7OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson7PosCode;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson8OrgCode;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson8PosCode;
    /**
     * 适用单位
     */
    @Schema(description = "适用单位")
    private java.lang.String suitUnit;
    /**
     * 所属地市单位
     */
    @Schema(description = "所属地市单位")
    private java.lang.String userUnit;
    /**
     * 是否更新（批量刷新时是否更新）
     */
    @Schema(description = "是否更新（批量刷新时是否更新）")
    private java.lang.String notUpdate;
    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private java.lang.String sysCreatorId;
    /**
     * 创建日期
     */
    @Schema(description = "创建日期")
    private java.util.Date sysCreateDate;
    /**
     * 修改人
     */
    @Schema(description = "修改人")
    private java.lang.String sysUpdatorId;
    /**
     * 修改日期
     */
    @Schema(description = "修改日期")
    private java.util.Date sysUpdateDate;
    /**
     * 快码部门id
     */
    @Schema(description = "快码部门id")
    private java.lang.String sysDeptId;
    /**
     * 归属单位标识
     */
    @Schema(description = "归属单位标识")
    private java.lang.String sysCompanyId;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson1OrgName;
    /**
     * 快码所属部门
     */
    @Schema(description = "快码所属部门")
    private java.lang.String epmPerson1PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson2OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson2PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson3OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson3PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson4OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson4PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson5OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson5PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson6OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson6PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson7OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson7PosName;
    /**
     * 绩效经理组织编码
     */
    @Schema(description = "绩效经理组织编码")
    private java.lang.String epmPerson8OrgName;
    /**
     * 绩效经理岗位编码
     */
    @Schema(description = "绩效经理岗位编码")
    private java.lang.String epmPerson8PosName;
    /**
     * 问卷考核部门
     */
    @Schema(description = "问卷考核部门")
    private java.lang.String secOrgCode;
    /**
     * 问卷考核部门
     */
    @Schema(description = "问卷考核部门")
    private java.lang.String secOrgName;
    /**
     * 排序
     */
    @Schema(description = "排序")
    private java.lang.String displayOrder;
    /**
     * 岗位系数
     */
    @Schema(description = "岗位系数")
    private java.lang.String coefficientPos;
    /**
     * 职责系数
     */
    @Schema(description = "职责系数")
    private java.lang.String coefficientDuty;
    /**
     * 外勤人员关联系数
     */
    @Schema(description = "外勤人员关联系数")
    private java.lang.String coefficientLinkOuter;
    /**
     * 人员群体:WQ,外勤人员;SC,生产内勤;ZH,综合内勤;GL,管理人员;WQ_DYYP,低压营配;WQ_GYSC,高压生产;WQ_GYYX,高压营销
     */
    @Schema(description = "人员群体:WQ,外勤人员;SC,生产内勤;ZH,综合内勤;GL,管理人员;WQ_DYYP,低压营配;WQ_GYSC,高压生产;WQ_GYYX,高压营销")
    private java.lang.String usrType;
    /**
     * 用工性质
     */
    @Schema(description = "用工性质")
    private java.lang.String userPosType;
    /**
     * 难度系数
     */
    @Schema(description = "难度系数")
    private java.lang.String coefficientHard;
    /**
     * 桐乡人员群体(3-低压班/4-高压班/5-所本级&综合班/6-抢修班)
     */
    @Schema(description = "桐乡人员群体(3-低压班/4-高压班/5-所本级&综合班/6-抢修班)")
    private java.lang.String areaType;
    /**
     * 绩效等级类型
     */
    @Schema(description = "绩效等级类型")
    private java.lang.String perfLevelType;
    /**
     * 绩效工资分配类型
     */
    @Schema(description = "绩效工资分配类型")
    private java.lang.String prefSalaryType;
    /**
     * 绩效工资分配方式
     */
    @Schema(description = "绩效工资分配方式")
    private java.lang.String prefSalaryWay;
    /**
     * 用户扩展信息
     */
    @Schema(description = "用户扩展信息")
    private java.lang.String ext;
    /**
     * 1 单位或部门修改，2 erp新增人员 3 erp删除人员
     */
    @Schema(description = "1 单位或部门修改，2 erp新增人员 3 erp删除人员")
    private java.lang.Integer changeLabel;


    /**
     * 人员类型列表
     */
    @TableField(exist = false)
    private List<String> personTypeList;

    /**
     * 部门列表
     */
    @TableField(exist = false)
    private List<String> orgCodeList;

    /**
     * 用工性质类型列表
     */
    @TableField(exist = false)
    private List<String> userPosTypeList;

    /**
     * 人员工号列表
     */
    @TableField(exist = false)
    private List<String> psnNumList;

    /**
     * 需要排除的人员工号列表
     */
    @TableField(exist = false)
    private List<String> excludePsnNumList;
}
